﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Business_Entity;
using Business_Logic;

namespace PetSoft.GUI.Ventas
{
    public partial class GUIBuscaPareja: Form
    {        
        private BEMascota mascota1;
        private BEMascota mascota2;        
        
        public GUIBuscaPareja()
        {
            InitializeComponent(); 
            inicializarComponentes();
        }

        public void inicializarComponentes(){
 			FotoMascota1.Image = System.Drawing.Image.FromFile(Utils.rutaFotoNoDisponible);
 			FotoMascota2.Image = System.Drawing.Image.FromFile(Utils.rutaFotoNoDisponible);
        }
        
        private void buVer_Click(object sender, EventArgs e)
        {
            
        }
        
        public void Limpiar1BTNClick(object sender, EventArgs e)
        {
        	LimpiarMascotaDueno1();
        }

        public void LimpiarMascotaDueno1(){
        	CodigoMascota1TB.Text = "";
        	NombreMascota1TB.Text = "";
        	GeneroMascota1TB.Text = "";        	
        	EspecieMascota1TB.Text = "";
        	RazaMascota1TB.Text = "";
        	FechaNacimiento1DTP.Value = DateTime.Now;
        	
        	VerMascota1BTN.Enabled = false;
        	
        	CodigoDueno1TB.Text = "";
        	NombreDueno1TB.Text = "";
        	
          	VerDueno1BTN.Enabled = false;
        	
          	mascota1 = null;
          	
			FotoMascota1.Image = System.Drawing.Image.FromFile(Utils.rutaFotoNoDisponible);
        }
        
        
        void Button1Click(object sender, EventArgs e)
        {
        	LimpiarMascotaDueno2();
        }
        
        public void LimpiarMascotaDueno2(){
        	CodigoMascota2TB.Text = "";
        	NombreMascota2TB.Text = "";
        	GeneroMascota2TB.Text = "";        	
        	EspecieMascota2TB.Text = "";
        	RazaMascota2TB.Text = "";
        	FechaNacimiento2DTP.Value = DateTime.Now;
        	
        	VerMascota2BTN.Enabled = false;
        	
        	CodigoDueno2TB.Text = "";
        	NombreDueno2TB.Text = "";
        	
          	VerDueno2BTN.Enabled = false;

          	mascota2 = null;
          	
			FotoMascota2.Image = System.Drawing.Image.FromFile(Utils.rutaFotoNoDisponible);
        }
        
        void Buscar1BTNClick(object sender, EventArgs e)
        {
        	GUIBuscarMascota v = new GUIBuscarMascota(2);
        	v.ShowDialog();
        	if(v.MascotaSeleccionada != null){
        		mascota1 = v.MascotaSeleccionada;
        		llenarCamposMascota1();
        		VerMascota1BTN.Enabled = true;
        		VerDueno1BTN.Enabled = true;
        	}
        }
        
        void Buscar2BTNClick(object sender, EventArgs e)
        {
        	GUIBuscarMascota v = new GUIBuscarMascota(2);
        	v.ShowDialog();
        	if(v.MascotaSeleccionada != null){
        		mascota2 = v.MascotaSeleccionada;
        		llenarCamposMascota2();
        		VerMascota2BTN.Enabled = true;
        		VerDueno2BTN.Enabled = true;
        	}
        }
        
        public void llenarCamposMascota1(){
        	CodigoMascota1TB.Text = mascota1.IdMascota.ToString();
        	NombreMascota1TB.Text = mascota1.Nombre;
        	if(mascota1.Genero == 'H')
        		GeneroMascota1TB.Text = "HEMBRA";
        	else if(mascota1.Genero == 'M')
        		GeneroMascota1TB.Text = "MACHO";
        	
			String msgOtraRaza = "";
			String msgOtraEspecie = "";
			if(!mascota1.OtraEspecie.Equals(""))
				msgOtraEspecie = "("+mascota1.OtraEspecie+")";
			if(!mascota1.OtraRaza.Equals(""))
				msgOtraRaza = "("+mascota1.OtraRaza+")";
        	
        	EspecieMascota1TB.Text = mascota1.BeRaza.BeEspecie.Descripcion+msgOtraEspecie;
        	RazaMascota1TB.Text = mascota1.BeRaza.Descripcion+msgOtraRaza;
        	FechaNacimiento1DTP.Value = mascota1.FechaNacimiento.Date;
        	
        	CodigoDueno1TB.Text = mascota1.Dueno.IdCliente.ToString();
        	NombreDueno1TB.Text = mascota1.Dueno.Nombre + " " + 
        						  mascota1.Dueno.ApellidoPaterno + " " + 
        						  mascota1.Dueno.ApellidoMaterno;
        	
        	BLMascota blMascota = new BLMascota();
		    this.FotoMascota1.Image = blMascota.buscarFotoMascota(mascota1);		        		        
        	
        	//foto
        }
        
        public void llenarCamposMascota2(){
        	CodigoMascota2TB.Text = mascota2.IdMascota.ToString();
        	NombreMascota2TB.Text = mascota2.Nombre;
        	if(mascota2.Genero == 'H')
        		GeneroMascota2TB.Text = "HEMBRA";
        	else if(mascota2.Genero == 'M')
        		GeneroMascota2TB.Text = "MACHO";
        	
        	String msgOtraRaza = "";
			String msgOtraEspecie = "";
			if(!mascota2.OtraEspecie.Equals(""))
				msgOtraEspecie = "("+mascota2.OtraEspecie+")";
			if(!mascota2.OtraRaza.Equals(""))
				msgOtraRaza = "("+mascota2.OtraRaza+")";
        	
        	EspecieMascota2TB.Text = mascota2.BeRaza.BeEspecie.Descripcion+msgOtraEspecie;
        	RazaMascota2TB.Text = mascota2.BeRaza.Descripcion+msgOtraRaza;
        	FechaNacimiento2DTP.Value = mascota2.FechaNacimiento;
        	
        	CodigoDueno2TB.Text = mascota2.Dueno.IdCliente.ToString();
        	NombreDueno2TB.Text = mascota2.Dueno.Nombre + " " + 
        						  mascota2.Dueno.ApellidoPaterno + " " + 
        						  mascota2.Dueno.ApellidoMaterno;
        	
        	BLMascota blMascota = new BLMascota();
		    this.FotoMascota2.Image = blMascota.buscarFotoMascota(mascota2);		        		        
        }
        
        void CancelarBTNClick(object sender, EventArgs e)
        {
        	//if(Utils.MessagePregunta("¿Está seguro que desea cancelar esta acción?"))
        		this.Dispose();
        }
        
        void MatchBTNClick(object sender, EventArgs e)
        {
        	if(mascota1 == null || mascota2 == null){
        		Utils.MessageAviso("Debe seleccionar a dos mascotas");
        		return;
        	}
        	
        	if(mismaMascota()){
        		Utils.MessageAviso("Debe seleccionar a dos mascotas diferentes");
        		return;
        	}
        	
        	if(mismoGenero()){
        		Utils.MessageAviso("Debe seleccionar a dos mascotas de diferente género");
        		return;
        	}
        	
        	if(!mismaEspecie()){
        		Utils.MessageAviso("Debe seleccionar a dos mascotas de la misma especie");
        		return;
        	}
        	
        	if(mascota1.MismaRaza == 'N' && mascota2.MismaRaza == 'N'){
        		if(Utils.MessagePregunta("¿Está seguro que desea realizar la siguiente acción?")){
        			hacerMatch();
        			return;
        		}
        		else
        			return;
        	}
        		        	
        	if(mismaRaza()){
        		if(Utils.MessagePregunta("¿Está seguro que desea realizar la siguiente acción?")){
        			hacerMatch();
        			return;
        		}
        		else
        			return;
        	}else{
        		if(mascota1.MismaRaza == 'S' && mascota2.MismaRaza == 'S')
        			Utils.MessageAviso("Ambos mascotas solo hacen match con mascotas de su misma raza");
        		else if(mascota1.MismaRaza == 'S' && mascota2.MismaRaza == 'N')
        			Utils.MessageAviso("La mascota 1 solo hace match con mascotas de su misma raza");	
        		else if(mascota1.MismaRaza == 'N' && mascota2.MismaRaza == 'S')
        			Utils.MessageAviso("La mascota 2 solo hace match con mascotas de su misma raza");
        		return;
        	}        	        	
        }
        
        public Boolean mismaRaza(){
        	if(mascota1.BeRaza.IdRaza == mascota2.BeRaza.IdRaza)
        		return true;
        	else
        		return false;
        }
        
        public Boolean mismaEspecie(){
        	if(mascota1.BeRaza.BeEspecie.IdEspecie == mascota2.BeRaza.BeEspecie.IdEspecie)
        		return true;
        	else
        		return false;
        }
        
        public Boolean mismaMascota(){        	
        	if(mascota1.IdMascota == mascota2.IdMascota)
        		return true;
        	else
        		return false;
        }
        
        public Boolean mismoGenero(){
        	if(mascota1.Genero == mascota2.Genero)
        		return true;
        	else
        		return false;
        }
        
        public void hacerMatch(){
        	String msg = "";        
        	BLMascota blMascotas = new BLMascota();
        	int r = blMascotas.hacerMatchMascotas(mascota1,mascota2);
        	if(r == 1){
        		msg = msg + "Felicidades\n" +
        			  mascota1.Nombre + " y " + mascota2.Nombre + ",\n" +
        			  "harán una linda pareja";        		
        		Utils.MessageInformation(msg);        		
        		LimpiarMascotaDueno1();
        		LimpiarMascotaDueno2();
        		this.Dispose();
        	}
        	else
        		Utils.MessageError("Ha ocurrido un error al hacer match con las mascotas",null);
        }
    
        
        void VerMascota1BTNClick(object sender, EventArgs e)
        {
        	GUIMascota v = new GUIMascota(mascota1,mascota1.Dueno,1);
        	v.ShowDialog();
        }
        
        void VerMascota2BTNClick(object sender, EventArgs e)
        {
        	GUIMascota v = new GUIMascota(mascota2,mascota2.Dueno,1);
        	v.ShowDialog();
        }
        
        void VerDueno1BTNClick(object sender, EventArgs e)
        {
        	GUICliente v = new GUICliente(mascota1.Dueno,1);
        	v.ShowDialog();
        }
        
        void VerDueno2BTNClick(object sender, EventArgs e)
        {
        	GUICliente v = new GUICliente(mascota2.Dueno,1);
        	v.ShowDialog();
        }
        
        void GUIBuscaParejaLoad(object sender, EventArgs e)
        {
        	
        }
    }
}
